<?php

interface IAssociation
{

  /**
   *
   * @param IAggregate $client
   * @return mixed
   */
  public function delValue(IAggregate $client);

  /**
   *
   * @return IAssociationDefinition
   */
  public function getDefinition();

  /**
   *
   * @param IAggregate $client
   * @return mixed
   */
  public function getValue(IAggregate $client);

  /**
   *
   * @param IAggregate $client
   * @return boolean
   */
  public function hasValue(IAggregate $client);

  /**
   *
   * @param IAggregate $client
   * @param mixed $value
   * @return mixed
   */
  public function setValue(IAggregate $client, $value);

}

?>